package cn.rdq.common.exception;

/**
 * 2开头成功，3重定向，4客户端异常，5服务端异常
 */
public enum ExceptionStatus {

    OK(200, "OK"),

    Success(200, "下载成功"),

    BadRequest(400, "invalid_request"),

    RequiredNotExisted(401, "缺少必填参数"),

    /*UserNotExisted(425, "用户不存在"),*/

    AppStateEccor(427, "应用未接出不可操作"),

    SignError(427, "请勿重复订购"),

    ApiNotUnshelve(427, "能力未下架，不可删除"),

    TempletExisted(430, "全局模板已存在，请先修改或删除旧模板在提交"),

    LabelNameExisted(431, "标签已存在"),

    AppSingnApi(427, "存在应用订购能力，不可删除"),

    VersionCodeExisted(428, "版本已存在，请修改版本后保存"),

    GenerateExisted(430, "存在已生成过能力的服务，请重新选择"),

    NameEnExisted(429, "编码已存在，请修改后保存"),

    FolwExisted(488, "存在未完成的审核流程，请稍后再操作"),

    roleMenuNotExisted(489, "角色不可为空"),

    SecurityCreateError(510, "秘钥生成失败"),

    FileAnalysisError(511, "文件解析失败"),

    FileReadError(512, "文件读取失败"),

    NoPermission(426, "No Permission"),
//
//    HasChildren(445, "删除菜单前请先删除菜单下的节点"),
//
//    CheckCodeError(446, "验证码错误"),
//
//    ParamLess(448, "参数不足"),
//
//    CodeExisted(449, "用户编码已经存在"),
//
//    ShortCodeExisted(450, "短编码已经存在"),
//
//    UrlExisted(451, "链接已经存在"),
//
//    ExportSizeMax(453, "导出数据过大，请缩小导出数量！"),
//
//    FileExist(455, "文件已存在"),
//
//    DictExisted(456, "字典ID已经存在"),
//
//    DataExisted(475, "数据已存在"),
//
////    UploadNotAllowed(459, "不允许上传"),
//
//    RoleNotExist(461, "某些角色不存在"),
//
//    EmptyUrl(465, "URL不能为空"),
//
//    startTimeLessThan(466, "计划开始时间不能小于上一条数据的计划开始时间！"),
//
//    startTimeGreaterThan(467, "计划开始时间不能大于下一条数据的计划开始时间！"),
//
//    startTimeGreaterLessThan(468, "计划开始时间不能小于上一条数据或大于下一条数据的计划开始时间！"),
//
//    OldPasswordError(474, "旧密码错误"),
//
//    OverMaxFileSize(478, "上传文件只能是512KB以内"),
//
//    issueDataError(479, "下发数据失败"),
//
//    ImageCodeError(480, "验证码错误"),
//
//    ImageCodeExpired(481, "验证码过期"),
//
//    NameExisted(483, "名称已经存在"),
//
//    AccountLocked(487, "您的账户被锁住了,请半小时后再试"),
//
    TokenExpired(488, "Token Expired"),

    PasswordError(489, "用户名或密码错误"),
//
//    DeleteError(492, "删除失败!"),
//
//    UsernameExisted(499, "Username has existed"),
//
//    InternalServerError(500, "Internal Server Error"),
//
//    TimeoutError(589, "Time Out Error"),

    UserIdNotExisted(590, "租户ID不存在"),

    InternalError(590, "server_error");



    private int status;

    private String reason;

    ExceptionStatus(int status, String reason) {
        this.status = status;
        this.reason = reason;
    }

    public int getStatus() {
        return status;
    }

    public String getReason() {
        return reason;
    }

//    public static ExceptionStatus fromStatusCode(final int statusCode) {
//        for (ExceptionStatus s : ExceptionStatus.values()) {
//            if (s.status == statusCode) {
//                return s;
//            }
//        }
//        return null;
//    }
}
